const Koa = require('koa')
const Router = require('koa-router') // 注意：引入的方式
const app = new Koa()
const router = new Router()
// ctx 上下文context，包含了request和response等信息
// 配置路由
router.get('/', function(ctx, next) {
  ctx.body = 'hello koa' // 返回数据 相当于：原生里面的res.writeHead() res.end()
}).get('/news', (ctx, next) => {
  ctx.body = '新闻page'
})

router.get('/newscontent', (ctx, next) => {
  let url = ctx.url; // = ctx.request.url
  // 从request中获取GET请求
  let request = ctx.request;
  let req_query = request.query;
  let req_querystring = request.querystring;
  // 从上下文中直接获取
  let ctx_query = ctx.query;
  let ctx_querystring = ctx.querystring;

  ctx.body = {
    url,
    req_query,
    req_querystring,
    ctx_query,
    ctx_querystring
  }

})
 // 作用：启动路由
app.use(router.routes()).use(router.allowedMethods())  // 可以配置也可以不配置，建议配置
// 作用：这是官方文档的推荐用法，我们可以看到router.allowedMethods()用在了路由匹配router.routes()之后，所以在当所有路由中间件最后调用，此时根据ctx.status设置response响应头

app.listen(3000, () => {
  console.log('starting at port 3000')
})
